#ifndef pkm_abstract_texture_h
#define pkm_abstract_texture_h

#include "SDL_opengl.h"

//#include "GraphicsInternals.h"
namespace k2graphics 
{

class GraphicsInternals;

#define ABSTRACT_TEXTURE 2
#define RAW_TEXTURE 234
#define SUB_TEXTURE 673

class AbstractTexture
{
public:
	virtual GLuint getRawGLTexture(int* params, int numParams);
	virtual GLuint getRawGLTexture();
	virtual void getRawTextureCoordinates(float sx, float sy, float &dx, float &dy);
	virtual void getRawTextureCoordinates(int* params, int numParams, float sx, float sy, float &dx, float &dy);

	virtual int getTextureType();

	void setInternals(GraphicsInternals* ni);

private:
	GraphicsInternals* internals;	
};

}
#endif
